package com.sitech.openapi.domain.customer;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;

@ApiModel(value = "Customer", description = "省客户资料")
public class GCreditLimit implements Serializable{

    private static final long serialVersionUID = 1L;

    // 主键
    @ApiModelProperty(value = "信用额度标识")
    private Long creditLimitId;

    // 记录外部信用额度标识
    @ApiModelProperty(value = "外部信用额度标识")
    private String extCreditLimitId;

    // 记录信用额度的作用对象类型。参考主数据：CUS-0012
    @ApiModelProperty(value = "对象类型")
    private String objType;

    // 作用对象标识，如果对象类型是客户，记录客户标识
    @ApiModelProperty(value = "对象标识")
    private Long objId;

    // 作用对象标识，如果对象类型是客户，记录客户标识
    @ApiModelProperty(value = "外部对象标识")
    private String extObjId;

    // 记录客户的信用额度值
    @ApiModelProperty(value = "信用额度值")
    private BigDecimal creditLimitFee;

    // 指产生欠费扣除信用额度后剩余的信用额度
    @ApiModelProperty(value = "可用信用额度值")
    private BigDecimal avalableCreditLimitFee;

    // 记录评估时间，DateTime格式
    @ApiModelProperty(value = "评估时间")
    private String evaluateTime;

    // 记录信用额度的评估方式，分为：固定值设定、系统计算等。参考主数据：LOVB=CUS-C-0021
    @ApiModelProperty(value = "评估方式")
    private String evaluateType;

    // 设定原因，如评估方式为：固定值设定时，记录具体的设定原因
    @ApiModelProperty(value = "设定原因")
    private String setReason;

    // 记录生效时间，DateTime格式
    @ApiModelProperty(value = "生效时间")
    private String effDate;

    // 记录失效时间，DateTime格式
    @ApiModelProperty(value = "失效时间")
    private String expDate;

    // 记录状态。参考主数据：LOVB=PUB-C-0001
    @ApiModelProperty(value = "状态")
    private Long statusCd;

    // 状态变更的时间，DateTime格式
    @ApiModelProperty(value = "状态时间")
    private String statusDate;

    // 记录备注信息
    @ApiModelProperty(value = "备注")
    private String remark;

    public Long getCreditLimitId() {
        return creditLimitId;
    }

    public void setCreditLimitId(Long creditLimitId) {
        this.creditLimitId = creditLimitId;
    }

    public String getExtCreditLimitId() {
        return extCreditLimitId;
    }

    public void setExtCreditLimitId(String extCreditLimitId) {
        this.extCreditLimitId = extCreditLimitId;
    }

    public String getObjType() {
        return objType;
    }

    public void setObjType(String objType) {
        this.objType = objType;
    }

    public Long getObjId() {
        return objId;
    }

    public void setObjId(Long objId) {
        this.objId = objId;
    }

    public String getExtObjId() {
        return extObjId;
    }

    public void setExtObjId(String extObjId) {
        this.extObjId = extObjId;
    }

    public BigDecimal getCreditLimitFee() {
        return creditLimitFee;
    }

    public void setCreditLimitFee(BigDecimal creditLimitFee) {
        this.creditLimitFee = creditLimitFee;
    }

    public BigDecimal getAvalableCreditLimitFee() {
        return avalableCreditLimitFee;
    }

    public void setAvalableCreditLimitFee(BigDecimal avalableCreditLimitFee) {
        this.avalableCreditLimitFee = avalableCreditLimitFee;
    }

    public String getEvaluateTime() {
        return evaluateTime;
    }

    public void setEvaluateTime(String evaluateTime) {
        this.evaluateTime = evaluateTime;
    }

    public String getEvaluateType() {
        return evaluateType;
    }

    public void setEvaluateType(String evaluateType) {
        this.evaluateType = evaluateType;
    }

    public String getSetReason() {
        return setReason;
    }

    public void setSetReason(String setReason) {
        this.setReason = setReason;
    }

    public String getEffDate() {
        return effDate;
    }

    public void setEffDate(String effDate) {
        this.effDate = effDate;
    }

    public String getExpDate() {
        return expDate;
    }

    public void setExpDate(String expDate) {
        this.expDate = expDate;
    }

    public Long getStatusCd() {
        return statusCd;
    }

    public void setStatusCd(Long statusCd) {
        this.statusCd = statusCd;
    }

    public String getStatusDate() {
        return statusDate;
    }

    public void setStatusDate(String statusDate) {
        this.statusDate = statusDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "GCreditLimit{" +
                "creditLimitId=" + creditLimitId +
                ", extCreditLimitId='" + extCreditLimitId + '\'' +
                ", objType='" + objType + '\'' +
                ", objId=" + objId +
                ", extObjId='" + extObjId + '\'' +
                ", creditLimitFee=" + creditLimitFee +
                ", avalableCreditLimitFee=" + avalableCreditLimitFee +
                ", evaluateTime='" + evaluateTime + '\'' +
                ", evaluateType='" + evaluateType + '\'' +
                ", setReason='" + setReason + '\'' +
                ", effDate='" + effDate + '\'' +
                ", expDate='" + expDate + '\'' +
                ", statusCd=" + statusCd +
                ", statusDate='" + statusDate + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }
}
